Generally described, networks such as the Internet allow computer users to request and view content provided by a variety of other computers on the network, commonly known as content provider computer systems. Oftentimes a content provider receives a request for content from a client computer and returns the requested content, along with some embedded advertisement media, in the form of a Web page.
In one conventional approach to delivering the advertisement media, the content provider does not generate the advertisement media, but rather receives the advertisement media from a third party advertisement delivery system, which collects the advertisement media from a variety of media providers. Thus the advertisement delivery system serves as the intermediary between the content providers and the advertisement media providers. In a first aspect of this advertisement delivery system configuration, the advertisement media providers submit advertisements, which include the advertisement media, and one or more subsets of attributes serving as the criteria for determining whether the advertisement media should be delivered to a content provider. For example, some specific advertisements may indicate that the advertisement media should be delivered to males (determined from a user profile) who are viewing sports-related content provided by the content provider.
In another aspect of this advertisement delivery system configuration, the content providers send advertisement media requests to the advertisement delivery system. Generally, the request includes a specific subset of client attributes relating to the user profile and/or the content of the Web page. For example, an advertisement request may include client attribute data, such as the user's age, and/or content attribute data, such as that the user has requested information about bicycles. Accordingly, the advertisement delivery system attempts to return the advertisement media that corresponds to the specific subsets of client attributes submitted with the advertisement request.
As the number of advertisement media providers and content providers increases, many conventional advertisement delivery systems have the deficiency of being unable to match advertisements with the content provider attributes in an efficient manner. For example, one conventional advertisement delivery system utilizes a single linear queue to store all of the advertisement media that is to be matched and sent to the content provider. Accordingly, the size of the linear queue expands as a direct function of the number of advertisements supported by the advertisement delivery system. Moreover, in such an implementation, the content provider evaluates the inputted criteria (a subset of client attributes) against each entry in the queue in successive order until a match is found. Accordingly, as the number of entries (e.g., advertisements) in the queue increases, the efficiency of the linear advertisement delivery matching is further reduced.
Advertisement delivery systems generally have some sort of revenue generating provision or contractual obligation to deliver each advertisement media to a minimum number of users. Accordingly, depending on the criteria associated with each advertisement (subset of attributes for delivering the media), some combinations of client attributes are more unique than others. For example, one advertisement media provider may only require that the user be male to deliver the advertisement media, but requires that the advertisement to be delivered 100,000 times per day. Another advertisement media provider, however, may require the user to be male, the content to be related to cooking, and the geographic area of the user to be the Northwest—but only requires the advertisement to be delivered 100 times per day.
To establish priority between advertisements in the linear queue embodiment, the entire queue must be reordered. As will be readily understood, reordering of the entire queue is inefficient and may not reflect the appropriate priority between two specific advertisements. With reference to the above example, assume a content provider submits a request for a user who is male, lives in the Northwest, and requests content related to cooking. If the first advertisement was listed higher in the linear queue because of the number of times it must be delivered, the linear queue delivers the first advertisement without determining whether the second advertisement criterion was matched. However, because of the relative uniqueness of the three profile attributes, in some cases it would be more efficient to deliver the second advertisement.
Thus there is a need for a system and method for implementing a condition evaluator that can evaluate numerous payload requests with numerous payload delivery criteria in an efficient manner.